package 牛客_面试必刷.Month07.day08;

public class 链表的奇偶重排 {
//    public ListNode oddEvenList (ListNode head) {  我就，想的有点复杂哈，其实没啥必要
//        // write code here
//        ListNode res = head;
//        int index = 1;
//        Deque<ListNode> Ji = new LinkedList<>();
//        ListNode JiIndex;
//        Deque<ListNode> Ou = new LinkedList<>();
//        ListNode OuIndex;
//        while(head != null){
//            if(index % 2 == 0){
//                Ji.add(head);
//                JiIndex = head;
//                head = head.next;
//                JiIndex = JiIndex.next;
//            }
//            if(index % 2 != 0){
//                Ou.add(head);
//                OuIndex = head;
//                head = head.next;
//                OuIndex = OuIndex.next;
//            }
//        }
//
//
//    }

    public ListNode oddEvenList (ListNode head) {
        //好好长点心把，还是要细心点的
        // write code here
        if(head == null) return null;
        //odd奇数下标  even偶数下标
        ListNode odd = head,even = head.next,oldeven = head.next;
        while(even != null && even.next != null){
            //开始对奇数下标进行拼接
            odd.next = odd.next.next;
            odd = odd.next;

            //然后对偶数进行拼接
            even.next = even.next.next;
            even = even.next;
        }
        odd.next = oldeven;
        return head;
    }
}
